﻿using RaytracerLib.MathLib;

namespace RaytracerLib.Volumes
{
    public static class VolumesFactory
    {
        public static Volume Solid(ColorFloat a_color)
        {
            return new SolidColorVolume(a_color);
        }

        public static Volume Solid(double a_value)
        {
            return new SolidValueVolume(a_value);
        }

        public static Volume Transform(Volume a_childVolume,
           Matrix4 a_transform)
        {
            return new TransformOperationVolume(a_childVolume, a_transform);
        }

        public static Volume Procedural(string a_source)
        {
            return new ProceduralVolume(a_source);
        }
    }
}